package edu.neu.swc.cloud.dao;

import edu.neu.swc.cloud.domain.Product;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;


@Mapper
public interface ProductDao {

    /**
     * 找到所有的产品
     * @return
     */
    List<Product> findAll();

    /**
     * 添加新产品
     * @param product
     */
    void addProduct(Product product);

    /**
     * 依据ID删除产品
     * @param pro_id
     */
    void deleteProductById(int pro_id);

    /**
     * 修改产品信息
     * @param product
     */
    void updateProduct(Product product);

    /**
     * 依据ID寻找产品类别
     * @param pro_id
     * @return
     */
    Product findProById(int pro_id);

    /**
     * 按照条件查找产品信息
     * @param product
     * @return
     */
    List<Product> findProByCon(Product product);

    /**
     * 通过条件获取
     * @param pro_name
     * @return
     */
    int getProductCounts(@Param("pro_name") String pro_name);

    /**
     * 通过条件获取产品列表
     * @param pro_name
     * @param pageStart
     * @param pageSize
     * @return
     */
    List<Product> findProductByQuery(@Param("pro_name") String pro_name,
                                     @Param("pageStart") int pageStart,
                                     @Param("pageSize") int pageSize);

    /**
     * 依据产品名称查询产品信息
     * @param pro_name
     * @return
     */
    Product findProductByName(@Param("pro_name") String pro_name);
}
